﻿using BCCommon;
using BCDto.Sim.Admin.Admin;
using BCDto.TMS.MoveHouseConfig.MoveHouseSpecificationConfig;
using BCDto.TMS.MoveHouseConfig.MoveHouseSpecificationConfig.MoveHouseSpecificationConfigRequest;
using System.Collections.Generic;

namespace BCService.TMS.MoveHouseConfig.MoveHouseSpecificationConfig
{
    public interface IMoveHouseSpecificationConfigService
    {
        /// <summary>
        /// 创建
        /// </summary>
        /// <param name="moveHouseConfigId">搬家id</param>
        /// <param name="requestDto"></param>
        /// <param name="admin"></param>
        /// <returns></returns>
        MoveHouseSpecificationConfigDto Create(long moveHouseConfigId, MoveHouseSpecificationConfigRequestDto requestDto, AdminDto admin);
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="moveHouseSpecificationConfigId">规格配置id</param>
        /// <param name="requestDto">信息</param>
        /// <param name="admin">管理员</param>
        /// <returns></returns>
        bool Update(long moveHouseSpecificationConfigId, MoveHouseSpecificationConfigRequestDto requestDto, AdminDto admin);

        /// <summary>
        /// 获取信息
        /// </summary>
        /// <param name="admin">管理员</param>
        /// <param name="moveHouseSpecificationConfigId">搬家设置id</param>
        /// <returns></returns>
        MoveHouseSpecificationConfigDto GetSingle(AdminDto admin,long moveHouseSpecificationConfigId);
        /// <summary>
        /// 获取列表
        /// </summary>
        /// <param name="admin">管理员</param>
        /// <param name="moveHouseConfigId">搬家配置id</param>
        /// <param name="isEnable">是否可用</param>
        /// <returns></returns>
        IEnumerable<MoveHouseSpecificationConfigDto> GetList(AdminDto admin, long moveHouseConfigId, bool? isEnable);

        /// <summary>
        /// 获取列表(全部)
        /// </summary>
        /// <param name="admin">管理员</param>
        /// <param name="moveHouseConfigId">搬家配置id</param>
        /// <param name="isEnable">是否可用</param>
        /// <returns></returns>
        IEnumerable<MoveHouseSpecificationConfigDto> GetAllList(AdminDto admin, long moveHouseConfigId, bool? isEnable);
        
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="moveHouseSpecificationConfigId">规格id</param>
        /// <param name="admin">管理员</param>
        /// <returns></returns>
        bool Delete(long moveHouseSpecificationConfigId, AdminDto admin);
        /// <summary>
        /// 启用
        /// </summary>
        /// <param name="moveHouseSpecificationConfigId">规格id</param>
        /// <param name="admin">管理员</param>
        /// <returns></returns>
        bool Enabled(long moveHouseSpecificationConfigId, AdminDto admin);
        /// <summary>
        /// 禁用
        /// </summary>
        /// <param name="moveHouseSpecificationConfigId">规格id</param>
        /// <param name="admin">管理员</param>
        /// <returns></returns>
        bool Disabled(long moveHouseSpecificationConfigId, AdminDto admin);
    }
}
